/**
 * Widget Meteo : Projet Android 
 * @author Floriance BRIN, Julie ESCOFFIER, Yoann GOBERT, Ikram NACIRI, Yann NIVET
 * @version 1.0
 * @date mars 2011
 * **/
package fr.imac.ProjetAndroid.weatherGestion;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

import android.graphics.Bitmap;

import android.widget.TextView;



import android.widget.ImageView;

/**
 * Classe qui stocke les données météo
 *
 */
public class WeatherConditions {
	private String minimal ="";
	private String maximal = "";
	private String current = "";
	private String illustration = "";
	
	public String day1 = "xxx";
	public String day2 = "xxx";
	public String day3 = "xxx";
	public String day4 = "xxx";
	
	/**
	 * Constructeur pour les prévisions
	 * @param minimal : température minimale
	 * @param maximal : température maximale
	 * @param illustration : nom de l'illustration
	 */
	public WeatherConditions(String minimal, String maximal, String illustration){
		updateConditions(minimal, maximal, illustration);
	}
	/**
	 * Constructeur pour les conditions actuelles
	 * @param current : température actuelle
	 * @param illustration : nom de l'illustration
	 */
	public WeatherConditions(String current, String illustration){
		updateConditions(current, illustration);
	}
	/**
	 * fonction pour mettre à jour les prévisions
	 * @param minimal : température minimale
	 * @param maximal : température maximale
	 * @param illustration : nom de l'illustration
	 */
	public void updateConditions(String minimal, String maximal, String illustration){
		this.minimal = minimal;
		this.maximal = maximal;
		this.current = maximal;
		this.illustration = illustration;
	}
	/**
	 * fonction pour mettre à jour les conditions actuelles
	 * @param current : température actuelle
	 * @param illustration : nom de l'illustration
	 */
	public void updateConditions(String current, String illustration){
		this.minimal = current;
		this.maximal = current;
		this.current = current;
		this.illustration = illustration;
	}
	
	public void setMinimal(String minimal) {
		this.minimal = minimal;
	}
	public String getMinimal() {
		return minimal;
	}
	public void setMaximal(String maximal) {
		this.maximal = maximal;
	}
	public String getMaximal() {
		return maximal;
	}
	public void setCurrent(String current) {
		this.current = current;
	}
	public String getCurrent() {
		return current;
	}
	public void setIllustration(String illustration) {
		this.illustration = illustration;
	}
	public String getIllustration() {
		return illustration;
	}
	
	/**
	 * fonction pour mettre à jour l affichage des jours des previsions
	 * @param j1, j2, j3, j4 : Les TextView qui servent � l'affichage des jours
	 */
	public void calculJoursPrevisions(TextView j1, TextView j2, TextView j3, TextView j4){
		SimpleDateFormat format2 = new SimpleDateFormat("EEEE", Locale.FRANCE);
		String jour= (String) format2.format(new Date(System.currentTimeMillis()));		
				
		if(jour.equals("lundi")){			
			day1 = "Mar";
			day2 = "Mer";
			day3 = "Jeu";
			day4 = "Ven";		
		}
		if(jour.equals("mardi")){			
			day1 = "Mer";
			day2 = "Jeu";
			day3 = "Ven";
			day4 = "Sam";		
		}
		if(jour.equals("mercredi")){			
			day1 = "Jeu";
			day2 = "Ven";
			day3 = "Sam";
			day4 = "Dim";		
		}
		if(jour.equals("jeudi")){			
			day1 = "Ven";
			day2 = "Sam";
			day3 = "Dim";
			day4 = "Lun";		
		}
		if(jour.equals("vendredi")){
						
			day1 = "Sam";
			day2 = "Dim";
			day3 = "Lun";
			day4 = "Mar";		
		}
		if(jour.equals("samedi")){			
			day1 = "Dim";
			day2 = "Lun";
			day3 = "Mar";
			day4 = "Mer";		
		}
		if(jour.equals("dimanche")){			
			day1 = "Lun";
			day2 = "Mar";
			day3 = "Mer";
			day4 = "Jeu";		
		}
		
		j1.setText(String.valueOf(this.day1));
		j2.setText(String.valueOf(this.day2));
		j3.setText(String.valueOf(this.day3));
		j4.setText(String.valueOf(this.day4));

	}
	
	
	/**
	 * fonction pour mettre à jour l affichage des conditions m�t�os actuelles
	 * @param  tempCurrent: le textView de la temperature courante
	 * @param  imgMeteoCurrent: l'image de la temperature courante de la temperature courante
	 * @patam miseAjour : le TextView de la derniere date de mise a jour
	 * @param jourCourant : mise a jour du TextView de la date actuelle
	 */
	public void updateDisplayCurrent(TextView tempCurrent, ImageView imgMeteoCurrent, TextView miseAjour, TextView jourCourant){
		
		//Mise a jour de la temperature
		tempCurrent.setText(String.valueOf(this.getCurrent()+"\u00B0C"));
		
		//Mise a jour de l'image
        String urlImgMeteo=   WeatherApiUrls.getIllustrationUrl(this.getIllustration(), 135, 113);
        Bitmap imageMeteo= WeatherApiUrls.getImageBitmap(urlImgMeteo);
        imgMeteoCurrent.setImageBitmap(imageMeteo);
        
        //Update de la date de mise a jour de la m�t�o
        java.util.GregorianCalendar calendar = new GregorianCalendar();
		int heure = calendar.get(java.util.Calendar.HOUR_OF_DAY)+1;
		int minute = calendar.get(java.util.Calendar.MINUTE);		
		SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");		
		miseAjour.setText(String.valueOf("Derniere mise a jour : "+format.format(new Date())+" a "+heure+"H"+minute));
		
		//Update du jour
		SimpleDateFormat format2 = new SimpleDateFormat("EEEE d MMMM yyyy HH:mm:ss", Locale.FRANCE);
		//format2.format(new Date(System.currentTimeMillis()));;
		jourCourant.setText(String.valueOf(format2.format(new Date(System.currentTimeMillis()))));
		
		
		//((TextView)findViewById(R.id.temperature_Jour)).setText(String.valueOf(this.getCurrent()+"�C"));
	}
	
	/**
	 * fonction pour mettre à jour l affichage des previsions J+1
	 * @param  imgMetoPlus1: ImageView pour affichage image meteo J+1
	 * @param  tempsPlus1: TextView pour affichage temperature meteo J+1
	 */
	public void updateDisplayPrevision1(ImageView imgMetoPlus1,  TextView tempsPlus1){
		
			//Update de la prevision J+1
		 	String urlImgMeteo=   WeatherApiUrls.getIllustrationUrl(this.getIllustration(), 70, 59);
	        Bitmap imageMeteo= WeatherApiUrls.getImageBitmap(urlImgMeteo);
	        imgMetoPlus1.setImageBitmap(imageMeteo);
	        
	        //Update des temp Min et Max J+1
	        String min= this.getMinimal();
	        String max= this.getMaximal();	        
	        tempsPlus1.setText(String.valueOf(min+"\u00B0C / "+max+"\u00B0C"));
	        


		
	}
	
	/**
	 * fonction pour mettre à jour l affichage des previsions J+2
	 * @param  imgMetoPlus2: ImageView pour affichage image meteo J+2
	 * @param  tempsPlus2: TextView pour affichage temperature meteo J+2
	 */
	public void updateDisplayPrevision2(ImageView imgMetoPlus2,  TextView tempsPlus2){
		
		//Update de la prevision J+1
	 	String urlImgMeteo=   WeatherApiUrls.getIllustrationUrl(this.getIllustration(), 70, 59);
        Bitmap imageMeteo= WeatherApiUrls.getImageBitmap(urlImgMeteo);
        imgMetoPlus2.setImageBitmap(imageMeteo);
        
        //Update des temp Min et Max J+1
        String min= this.getMinimal();
        String max= this.getMaximal();	        
        tempsPlus2.setText(String.valueOf(min+"\u00B0C / "+max+"\u00B0C"));

	
	}
	
	/**
	 * fonction pour mettre à jour l affichage des previsions J+3
	 * @param  imgMetoPlus3: ImageView pour affichage image meteo J+3
	 * @param  tempsPlus3: TextView pour affichage temperature meteo J+3
	 */

	public void updateDisplayPrevision3(ImageView imgMetoPlus3,  TextView tempsPlus3){
		
		//Update de la prevision J+1
	 	String urlImgMeteo=   WeatherApiUrls.getIllustrationUrl(this.getIllustration(), 70, 59);
        Bitmap imageMeteo= WeatherApiUrls.getImageBitmap(urlImgMeteo);
        imgMetoPlus3.setImageBitmap(imageMeteo);
        
        //Update des temp Min et Max J+1
        String min= this.getMinimal();
        String max= this.getMaximal();	        
        tempsPlus3.setText(String.valueOf(min+"\u00B0C / "+max+"\u00B0C"));

	
	}
	
	/**
	 * fonction pour mettre à jour l affichage des previsions J+4
	 * @param  imgMetoPlus4: ImageView pour affichage image meteo J+4
	 * @param  tempsPlus4: TextView pour affichage temperature meteo J+4
	 */
	public void updateDisplayPrevision4(ImageView imgMetoPlus4,  TextView tempsPlus4){
		
		//Update de la prevision J+1
	 	String urlImgMeteo=   WeatherApiUrls.getIllustrationUrl(this.getIllustration(), 70, 59);
        Bitmap imageMeteo= WeatherApiUrls.getImageBitmap(urlImgMeteo);
        imgMetoPlus4.setImageBitmap(imageMeteo);
        
        //Update des temp Min et Max J+1
        String min= this.getMinimal();
        String max= this.getMaximal();	        
        tempsPlus4.setText(String.valueOf(min+"\u00B0C / "+max+"\u00B0C"));
        
        // GregorianCalendar calendar = new GregorianCalendar();
       // JourPlus4.setText(String.valueOf(this.day4));
	
	}
	
}
